Modify 08-2-binary-search.rkt to design the following function:
;; binary-search-count : Nat (Nat -> Number) Number -> Nat
;; GIVEN: a number N, a function f : Nat -> Number and a number tgt
;; WHERE: f is monotonic (ie, i<=j implies f(i) <= f(j))
;; RETURNS: the number of i s.t. f(i) = x
;; EXAMPLES/TESTS:
(begin-for-test
;; successful search
(check-equal?
(binary-search-count 12 sqr 49)
7)
;; unsuccessful search
(check-equal?
(binary-search-count 12 sqr 48)
false)
;; make sure we don't miss the endpoints
(check-equal?
(binary-search-count 12 sqr 0)
0)
(check-equal?
(binary-search-count 12 sqr 144)
12))
Remember that your invariants are at least as important as your code.
Last modified: Sun Oct 19 16:42:49 Eastern Daylight Time 2014